package ar.com.ctrln.view.dashboard.compras;


import java.util.Date;

import org.zkoss.zk.ui.Component;
import org.zkoss.zk.ui.Executions;
import org.zkoss.zk.ui.select.annotation.Listen;
import org.zkoss.zk.ui.select.annotation.VariableResolver;
import org.zkoss.zk.ui.select.annotation.Wire;
import org.zkoss.zk.ui.select.annotation.WireVariable;
import org.zkoss.zk.ui.util.Clients;
import org.zkoss.zul.Calendar;
import org.zkoss.zul.Combobox;
import org.zkoss.zul.Div;
import org.zkoss.zul.ListModelList;
import org.zkoss.zul.Spinner;
import org.zkoss.zul.Textbox;
import org.zkoss.zul.Window;

import ar.com.ctrln.control.compras.RegistrarPedidoCompra;
import ar.com.ctrln.persistence.model.compra.PedidoCompra;
import ar.com.ctrln.persistence.model.insumo.Insumo;
import ar.com.ctrln.view.ui.comportamientoVentana.AbstractMinimizarVentana;

@VariableResolver(org.zkoss.zkplus.spring.DelegatingVariableResolver.class)
public class RegistrarPedidoCompraController extends AbstractMinimizarVentana {

	private static final long serialVersionUID = 7293861791737040132L;

	@WireVariable
	private RegistrarPedidoCompra registrarPedidoCompra;
	
	private PedidoCompra pedido;
	
	
	@Wire
	private Window wRegistrarPedidoCompra;
					
	@Wire
	private Combobox cboTipoSuministro;
	
	@Wire
	private Combobox cboSuministro;
	
	@Wire
	private Div btnRegistrarPedido;
	
	@Wire
	private Spinner spinCantidad;
	
	@Wire
	private Calendar calFechaPref;
	
	@Wire
	private Textbox tbDescripcionPedido;

		
	@SuppressWarnings({ })
	@Override
	public void doAfterCompose(Component comp) throws Exception {
		super.doAfterCompose(comp);
		if (Executions.getCurrent().getArg().get("data")!=null)
		{
			
		}

	}
			
	@Listen("onClick = #btnRegistrarPedido")
	public void registrarPedido() {
		if(cboTipoSuministro.getText().equals("Sleccione ...") || cboSuministro.getText().equals("Sleccione ..."))
		{
			Clients.showNotification("Antes debe completar los campos faltantes",Clients.NOTIFICATION_TYPE_INFO, btnRegistrarPedido, "before_center", 6000);
			}
		else{
		pedido = new PedidoCompra();
		pedido.setInsumo((Insumo)cboSuministro.getModel().getElementAt(cboSuministro.getSelectedIndex()));
		pedido.setFechaAlta(new Date());
		pedido.setFechaPref(calFechaPref.getValue());
		pedido.setCantidad(spinCantidad.getValue());
		pedido.setIndicaciones(tbDescripcionPedido.getValue());
		pedido.setEstado(PedidoCompra.ESTADO_PENDIENTE);
		registrarPedidoCompra.guardarPedido(pedido);
		wRegistrarPedidoCompra.onClose();
		Clients.showNotification("Nota de pedido registrada con exito!",Clients.NOTIFICATION_TYPE_INFO, null, "middle_center", 2500);
		}
}
	@Listen("onSelect = #cboTipoSuministro")
	public void seleccionServicio() {
		cboSuministro.setText("");
		String tipo = cboTipoSuministro.getText();
		cboSuministro.setModel(new ListModelList<Insumo>(registrarPedidoCompra.listaInsumosxTipo(tipo)));
	}
	
}

